package com.zhike.common.dto;

/**
 * RainbowChat中的用户自定义聊天消息、指令等IM通信协议类型常量表（之
 * 所以称为”用户自定义“，是为了区别于MobileIMSDK框架级的协议类型，仅此而已）。
 * <p>
 * 本表中的常量用途，对应用MobileIMSDK的net.openmob.mobileimsdk.server.protocal.Protocal
 * 对象的typeu字段（详见MobileIMSDK的文档：http://docs.52im.net/extend/docs/api/zkim/mobileimsdk/server/）。
 * 
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 4.0
 */
public interface UserProtocalsType {
	/** 上线通知报文头 */
	int MT01_OF_ONLINE_NOTIVICATION = 1;
	/** 下线通知报文头 */
	int MT02_OF_OFFLINE_NOTIVICATION = 2;

	/**
	 * 普通一对一聊天消息的报文头（聊天消息可能是：文本、图片、语音留言、礼物等）
	 * 
	 * @see {@link com.zhike.common.dto.x52im.rainbowchat.im.dto.MsgBody4Friend}
	 */
	int MT03_OF_CHATTING_MESSAGE = 3;

	/**
	 * 客户端发出的用户加好友请求报文头（由添加好友请求的发起人发出）
	 * 
	 */
	int MT05_OF_ADD_FRIEND_REQUEST_A$TO$SERVER = 5;
	/** 由服务端反馈给加好友发起人的错误信息头(出错的可能是：该好友已经存在于我的好友列表中、插入好友请求到db中时出错等) */
	int MT06_OF_ADD_FRIEND_REQUEST_RESPONSE$FOR$ERROR_SERVER$TO$A = 6;
	/** 由服务端转发的加好友请求消息给在线目标用户（离线用户是不需要的哦） */
	int MT07_OF_ADD_FRIEND_REQUEST_INFO_SERVER$TO$B = 7;
	/** 由服务端发出的同意加好友的请求 */
	int MT08_OF_PROCESS_ADD$FRIEND$REQ_B$TO$SERVER_AGREE = 8;
	/**
	 * 被@（由B发给服务端）
	 * 
	 */
	int MT09_OF_PROCESS_ADD$FRIEND$REQ_B$TO$SERVER_REJECT = 9;
	/**
	 * 将【拒绝】的加好友结果传回给原请求用户的消息头（由服务端发回给A），此消息发送的
	 * 前提条件是A必须此时必须在线，否则将不会实时发送给客户端
	 */
	int MT12_OF_PROCESS_ADD$FRIEND$REQ_SERVER$TO$A_REJECT_RESULT = 12;
	/**
	 * 新好友已成功被添加信息头（此场景是被请求用户同意了加好友的请求时，由服务端把双
	 * 方的好友信息及时交给对方（如果双方有人在线的话））
	 */
	int MT10_OF_PROCESS_ADD$FRIEND$REQ_FRIEND$INFO$SERVER$TO$CLIENT = 10;
	/**
	 * 由服务端反馈给B处理（包括同意和拒绝两种情况下）加好友请求处理时的错误信
	 * 息头(出错的可能是：B在提交同意A的加好友请求时出错了等)
	 */
	int MT11_OF_PROCESS_ADD$FRIEND$REQ_RESPONSE$FOR$ERROR_SERVER$TO$B = 11;

	/** 视频聊天进行中：结束本次音视频聊天 */
	int MT14_OF_VIDEO$VOICE_END$CHATTING = 14;
	/** 视频聊天进行中：切换到纯音频聊天模式 */
	int MT15_OF_VIDEO$VOICE_SWITCH$TO$VOICE$ONLY = 15;
	/** 视频聊天进行中：切换回音视频聊天模式 */
	int MT16_OF_VIDEO$VOICE_SWITCH$TO$VOICE$AND$VIDEO = 16;

	/** 视频聊天呼叫中：请求视频聊天(发起方A) */
	int MT17_OF_VIDEO$VOICE$REQUEST_REQUESTING$FROM$A = 17;
	/** 视频聊天呼叫中：取消视频聊天请求(发起发A) */
	int MT18_OF_VIDEO$VOICE$REQUEST_ABRORT$FROM$A = 18;
	/** 视频聊天呼叫中：占线(接收方B) */
	int MT19_OF_VIDEO$VOICE$REQUEST_ACCEPT$TO$A = 19;
	/** 视频聊天呼叫中：拒绝视频聊天请求(接收方B) */
	int MT20_OF_VIDEO$VOICE$REQUEST_REJECT$TO$A = 20;

	/** 实时语音聊天呼叫中：请求实时语音聊天(发起方A) */
	int MT31_OF_REAL$TIME$VOICE$REQUEST_REQUESTING$FROM$A = 31;
	/** 实时语音聊天呼叫中：取消实时语音聊天请求(发起发A) */
	int MT32_OF_REAL$TIME$VOICE$REQUEST_ABRORT$FROM$A = 32;
	/** 实时语音聊天呼叫中：同意实时语音聊天请求(接收方B) */
	int MT33_OF_REAL$TIME$VOICE$REQUEST_ACCEPT$TO$A = 33;
	/** 实时语音聊天呼叫中：拒绝实时语音聊天请求(接收方B) */
	int MT34_OF_REAL$TIME$VOICE$REQUEST_REJECT$TO$A = 34;

	/** 实时语音聊天进行中：结束本次实时语音聊天 */
	int MT35_OF_REAL$TIME$VOICE_END$CHATTING = 35;

	/** 临时聊天消息：由发送人A发给服务端【步骤1/2】 */
	int MT42_OF_TEMP$CHAT$MSG_A$TO$SERVER = 42;
	/** 临时聊天消息：由服务端转发给接收人B的【步骤2/2】 */
	int MT43_OF_TEMP$CHAT$MSG_SERVER$TO$B = 43;

	/** 群聊/世界频道聊天消息：由发送人A发给服务端【步骤1/2】 */
	int MT44_OF_GROUP$CHAT$MSG_A$TO$SERVER = 44;
	/** 群聊/世界频道聊天消息：由服务端转发给所有在线接收人B的【步骤2/2】 */
	int MT45_OF_GROUP$CHAT$MSG_SERVER$TO$B = 45;

	/** 群聊系统指令：加群(建群或被邀请时)成功后通知被加群者（由Server发出，所有被加群者接收） */
	int MT46_OF_GROUP$SYSCMD_MYSELF$BE$INVITE_FROM$SERVER = 46;
	/** 群聊系统指令：通用的系统信息给指定群员（由Server发出，指定群员接收） */
	int MT47_OF_GROUP$SYSCMD_COMMON$INFO_FROM$SERVER = 47;
	/** 群聊系统指令：群已被解散（由Server发出，除解散者外的所有人接收） */
	int MT48_OF_GROUP$SYSCMD_DISMISSED_FROM$SERVER = 48;
	/** 群聊系统指令："你"被踢出群聊（由Server发出，被踢者接收） */
	int MT49_OF_GROUP$SYSCMD_YOU$BE$KICKOUT_FROM$SERVER = 49;
	/** 群聊系统指令："别人"主动退出或被群主踢出群聊（由Server发出，其它群员接收） */
	int MT50_OF_GROUP$SYSCMD_SOMEONEB$REMOVED_FROM$SERVER = 50;
	/** 群聊系统指令：群名被修改的系统通知（由Server发出，所有除修改者外的群员接收） */
	int MT51_OF_GROUP$SYSCMD_GROUP$NAME$CHANGED_FROM$SERVER = 51;

	// /** 群聊系统指令：群主转让成功后，通知新群主（由Server发出，仅新群主接收此指令） */
	// int MT51_OF_GROUP$SYSCMD_YOU$ARE$NEW$OWNER_FROM$SERVER = 52;

	/**
	 * 入群验证
	 */
	int MT53 = 53;

	/**
	 * 入群验证错误
	 */
	int MT54 = 54;
	/**
	 * 阅后即焚
	 */
	int MT55 = 55;

	/**
	 * 好友消息双向撤回
	 */
	int MT56 = 56;

	/**
	 * 群消息撤回
	 */
	int MT57_OFF_REVOKE = 57;
	/**
	 * 正在输入
	 */
	int MT58 = 58;
	/**
	 * 消息已读
	 */
	int MT59_OF_MARK_READED = 59;
	/**
	 * 消息已读
	 */
	int MT60_OF_MARK_READED_CALLBACK = 60;
	/**
	 * 好友删除
	 */
	int MT61 = 61;

	// 拉黑通知
	int MT62_BLACKLIST = 62;

	// 内容违规
	int MT63_SECURITY = 63;
}
